<!doctype html>
<html>
<head>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<script>

test(() => {
  // Check Performance attributes.
  assert_equals(typeof(performance.toJSON), 'function');
  const json = performance.toJSON();
  assert_equals(typeof(json), 'object');
  assert_equals(json.timeOrigin, performance.timeOrigin,
    'performance.toJSON().timeOrigin should match performance.timeOrigin');

  // // Check PerformanceTiming toJSON.
  // const jsonTiming = json.timing;
  // const timing = performance.timing;
  // assert_equals(typeof(timing.toJSON), 'function');
  // const timingJSON = timing.toJSON();
  // assert_equals(typeof(timingJSON), 'object');
  // // Check PerformanceTiming attributes, from both:
  // // 1) |jsonTiming| from  Performance.
  // // 2) |timingJSON| from PerformanceTiming.
  // const performanceTimingKeys = [
  //   'navigationStart',
  //   'unloadEventStart',
  //   'unloadEventEnd',
  //   'redirectStart',
  //   'redirectEnd',
  //   'fetchStart',
  //   'domainLookupStart',
  //   'domainLookupEnd',
  //   'connectStart',
  //   'connectEnd',
  //   'secureConnectionStart',
  //   'requestStart',
  //   'responseStart',
  //   'responseEnd',
  //   'domLoading',
  //   'domInteractive',
  //   'domContentLoadedEventStart',
  //   'domContentLoadedEventEnd',
  //   'domComplete',
  //   'loadEventStart',
  //   'loadEventEnd'
  // ];
  // for (const key of performanceTimingKeys) {
  //   assert_equals(jsonTiming[key], timing[key],
  //     `performance.toJSON().timing.${key} should match performance.timing.${key}`);
  //   assert_equals(timingJSON[key], timing[key],
  //     `performance.timing.toJSON().${key} should match performance.timing.${key}`);
  // }
  //
  // // Check PerformanceNavigation toJSON.
  // const jsonNavigation = json.navigation;
  // const navigation = performance.navigation;
  // assert_equals(typeof(navigation.toJSON), 'function');
  // const navigationJSON = navigation.toJSON();
  // assert_equals(typeof(navigationJSON), 'object');
  // // Check PerformanceNavigation attributes, from both:
  // // 1) |jsonNavigation| from  Performance.
  // // 2) |navigationJSON| from PerformanceNavigation.
  // let performanceNavigationKeys = ['type', 'redirectCount'];
  // for (const key of performanceNavigationKeys) {
  //   assert_equals(jsonNavigation[key], navigation[key],
  //     `performance.toJSON().navigation.${key} should match performance.navigation.${key}`);
  //   assert_equals(navigationJSON[key], navigation[key],
  //     `performance.navigation.toJSON().${key} should match performance.navigation.${key}`);
  // }
}, 'Test performance.toJSON()');
</script>
</body>
</html>
